package com.mgetool.ui.util;

import java.util.Random;

public final class RandomUtil {

	private static Random random = new Random();

	private RandomUtil() {
	}

	/**
	 * 得到随机int.
	 * 
	 * @return
	 */
	public static int rand() {
		return random.nextInt();
	}

	/**
	 * 生成从 start 到 end 的随机整数. (含 start 和 end)
	 * 
	 * start 应小于等于 end, 否则程序会自动将它们的值对调.
	 * 
	 * @param start
	 * @param end
	 * @return
	 */
	public static int rand(int start, int end) {
		if (start > end) {
			int temp = start;
			start = end;
			end = temp;
		}
		return Math.abs(random.nextInt() % (end - start + 1)) + start;
	}

	/**
	 * 随机枚举. 从指定的 int[] 中随机选择一个位置, 并返回这个位置对应的数值.
	 * 
	 * @param menu
	 * @return
	 */
	public static int rand(int[] menu) {
		return menu[rand(0, menu.length - 1)];
	}

	/**
	 * 随机触发. 在 start 和 end 之间进行随机, 随机到的值 >= sub 时, 返回真, 否则返回假.
	 * 
	 * @param start
	 * @param sub
	 *            : 阀值，当大于等于阀值时，触发
	 * @param end
	 * @return
	 */
	public static boolean rand(int start, int sub, int end) {
		return rand(start, end) >= sub;
	}

}
